/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeMenu.js<br>
 * 日期：2016年8月5日<br>
 * 作者: 王中山<br>
 * 功能：菜单组件<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");


/**
 * 类型名称：Rainier.UI.V2.UICompositeMenu<br>
 * 类型功能：创建菜单<br>
 */
Rainier.UI.V2.UICompositeMenu = Rainier.UI.V2.UIComposite.extend({
	
	NAME : 'Rainier.UI.V2.UICompositeMenu',
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite  	父组件实例<br>
	 * 参数输入：objProperties		 	组件属性定义<br>	
	 * {
	 * 		left	:"100px";		//左位置
	 * 		top		:"100px";		//上位置
	 * }
	 * 异常信息：<br>
	 */
	init : function(objParentComposite,objProperties){
		this._super(objParentComposite,objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.appendEventHandler<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	appendEventHandler : function(){
		this.m_aEventList = ['onShow','onHide','onClick'];
		this._super();		
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.createComposite<br>
	 * 函数功能：创建组件<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	createComposite : function(eleParent){
		this._super(eleParent);		
		var newEle = this.CreateElement("div ",this.m_objProperties.id);
		eleParent.append(newEle);
		newEle.menu(this.m_objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.options<br>
	 * 函数功能：返回选项对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	options : function(){
		return this.getElement().menu('options');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.show<br>
	 * 函数功能：在特定位置显示菜单<br>
	 * 参数输入：pos 包含左和上两个属性<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	/**
	 * 	Show a menu on specified position.
	 * pos parameter have two properties:
	 * left: the new left position.
	 * top: the new top position.
	 */
	show : function(pos){
		return this.getElement().menu('show',pos);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.hide<br>
	 * 函数功能：隐藏菜单<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	hide : function(){
		return this.getElement().menu('hide');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.destroy<br>
	 * 函数功能：注销菜单<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	destroy : function(){
		return this.getElement().menu('destroy');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.removeItem<br>
	 * 函数功能：删除指定菜单项<br>
	 * 参数输入：itemEl 菜单项元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	removeItem : function(itemEl){
		return this.getElement().menu('removeItem',itemEl);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.enableItem<br>
	 * 函数功能：使菜单项可用<br>
	 * 参数输入：itemEl 菜单项元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	enableItem : function(itemEl){
		return this.getElement().menu('enableItem',itemEl);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.disableItem<br>
	 * 函数功能：使菜单项不可用<br>
	 * 参数输入：itemEl 菜单项元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	disableItem : function(itemEl){
		return this.getElement().menu('disableItem',itemEl);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.showItem<br>
	 * 函数功能：显示菜单项<br>
	 * 参数输入：itemEl 菜单项元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	showItem : function(itemEl){
		return this.getElement().menu('showItem',itemEl);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.hideItem<br>
	 * 函数功能：隐藏菜单项<br>
	 * 参数输入：itemEl 菜单项元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	hideItem : function(itemEl){
		return this.getElement().menu('hideItem',itemEl);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.resize<br>
	 * 函数功能：还原指定菜单<br>
	 * 参数输入：menuEl 菜单元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	resize : function(menuEl){
		return this.getElement().menu('resize',menuEl);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.getItem<br>
	 * 函数功能：获得菜单项包含一个‘target’属性表明是DOM元素的属性<br>
	 * 参数输入：itemEl 菜单项元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	getItem : function(itemEl){
		return this.getElement().menu('getItem',itemEl);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.setText<br>
	 * 函数功能：设置指定菜单项文本<br>
	 * 参数输入：param 名称<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	setText : function(param){
		return this.getElement().menu('setText',param);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.setIcon<br>
	 * 函数功能：设置指定菜单项图标<br>
	 * 参数输入：param 图标参数<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	setIcon: function(param){
		return this.getElement().menu('setIcon',param);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.findItem<br>
	 * 函数功能：找到指定菜单项，返回对象与getItem方法相同<br>
	 * 参数输入：text 名称<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	findItem: function(text){
		return this.getElement().menu('findItem',text);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeMenu.appendItem<br>
	 * 函数功能：附加一个新的菜单项，'options'参数阐释新项的属性<br>
	 * 参数输入：options：{text: 'New Item',							//文本名称
	 *  				iconCls: 'icon-ok',							//图标
	 *  				onclick: function(){alert('New Item')},		//事件
	 *  				separator: true,							//分隔符
	 *  				parent: item.target, 						//子菜单设置var item = $('#mm').menu('findItem', 'Open');
	 *  				text: 'Open Excel',							
	 *  				iconCls: 'icon-excel',
	 *  				onclick: function(){alert('Open Excel')}}<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	appendItem: function(options){
		return this.getElement().menu('appendItem',options);
	},
});